import Base64 from 'base64-js'
export const synthesize = async (text: string) => {
  return new Promise((resolve,reject)=>{
    console.log(text, '这是进来的文字')
    let yinLiang = 5;
    let yuSu = 5;
    let yunSe = 0;
    let yindiao = 5;
    var param = {
      tex: text, // 要合成的文本
      tok: uni.getStorageSync('baiduToken') || "24.11699c0253c837eabb6cd0efa0fa639c.2592000.1721279070.282335-76128508", // 百度token
      cuid: uni.getStorageSync('baiduToken') || 'V2iQORgDxLHLmusXNOZYN9tAiqVy51KW',
      spd: yuSu ?? 5, //默认为5中语速 取值0-15
      pit: yindiao ?? 5, //5中语调 取值0-15
      vol: yinLiang ?? 5, //音量，取值0-15，默认为5中音量
      per: yunSe ?? 1, //基础音库发音人选择：0为度小美，1为度小宇，3为度逍遥，4为度丫丫，
      ctp: "1", //web
      lan: "zh", //中文
      aue: 3
    }
    let paramsStringManual = '';
    for (let key in param) {
      paramsStringManual += `${key}=${encodeURIComponent(param[key])}&`;
    }
    paramsStringManual = paramsStringManual.slice(0, -1); // 移除最后一个&
    const src =
        `https://tsn.baidu.com/text2audio?${paramsStringManual}`;
    const music = uni.createInnerAudioContext()
    music.src = src
    music.stop()
    music.play()
    music.onError((res) => {
      console.log("InnerAudioContext()   errCode:" + res.errCode + "    errMsg:" + res.errMsg);
      reject({code:500,value:'播放失败'})
    });
    music.onEnded((res)=>{
      resolve({code:200,value:'播放完毕'})
    })
  })

}
// export const synthesize = async (text: string) => {
//   console.log(text, '这是进来的文字')
//   let yinLiang = 5;
//   let yuSu = 5;
//   let yunSe = 0;
//   let yindiao = 5;
//   var param = {
//     tex: text, // 要合成的文本
//     tok: uni.getStorageSync('baiduToken') || "24.11699c0253c837eabb6cd0efa0fa639c.2592000.1721279070.282335-76128508", // 百度token
//     cuid: uni.getStorageSync('baiduToken') || 'V2iQORgDxLHLmusXNOZYN9tAiqVy51KW',
//     spd: yuSu ?? 5, //默认为5中语速 取值0-15
//     pit: yindiao ?? 5, //5中语调 取值0-15
//     vol: yinLiang ?? 5, //音量，取值0-15，默认为5中音量
//     per: yunSe ?? 1, //基础音库发音人选择：0为度小美，1为度小宇，3为度逍遥，4为度丫丫，
//     ctp: "1", //web
//     lan: "zh", //中文
//     aue: 3
//   }
//   // let paramsStringManual = '';
//   // for (let key in param) {
//   //   paramsStringManual += `${key}=${encodeURIComponent(param[key])}&`;
//   // }
//   // paramsStringManual = paramsStringManual.slice(0, -1); // 移除最后一个&
//   // str就是你想转化成语音的文字,token就是你刚刚保存的token
//   const src =
//     `https://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdggg&tok=${param.tok}&tex=${text}&vol=5&per=0&spd=5&pit=5&aue=3`;
//   const music = uni.createInnerAudioContext()
//   music.src = src
//   music.stop()
//   music.play()
//   music.onError((res) => {
//     console.log("InnerAudioContext()   errCode:" + res.errCode + "    errMsg:" + res.errMsg);
//   });
//
//   // try {
//   //   uni.request({
//   //     url: 'https://tsn.baidu.com/text2audio',
//   //     method: 'POST',
//   //     header: {
//   //       'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
//   //       'Accept': '*/*'
//   //     },
//   //     data: paramsStringManual,
//   //     responseType: 'bold',
//   //     success: function (res) {
//   //       console.log(res, '成功的res')
//   //       if (res.statusCode === 200) {
//   //         if (res.header['Content-Type'] == "audio/mp3") {
//   //           console.log('说明这是语音')
//   //           uni.saveFile({
//   //             tempFilePath: res.data,
//   //             success: function (res) {
//   //               console.log(res, '这是读取语音成功')
//   //             },
//   //             fail:function (err){
//   //               console.log(err, '这是读取语音失败')
//   //             }
//   //           })
//   //           // console.log(res.data)
//   //           // const base64String = uni.base64ToArrayBuffer(res.data)
//   //           // console.log(base64String, '这是base64的语音')
//   //           // const audioCtx = uni.createInnerAudioContext();
//   //           // audioCtx.src = `data:audio/mp3;base64,${base64String} `;
//   //           // audioCtx.play();
//   //           // let decodedString = decodeURIComponent(res.data);
//   //           // console.log(decodedString, '这是解码后的语音')
//   //           // const binaryData = new Uint8Array(res.data);
//   //           // console.log(binaryData,'这是二进制')
//   //           // const base64String = Base64.fromByteArray(binaryData)
//   //           // console.log(base64String, '这是base64的语音')
//   //
//   //           // blobToArrayBuffer(res.data).then(arrayBuffer => {
//   //           //   console.log(arrayBuffer, '这是arrayBuffer')
//   //           //   const base64String = uni.arrayBufferToBase64(new Uint8Array(arrayBuffer));
//   //           //   console.log(base64String); // 打印Base64编码的字符串
//   //           //   // 这里你可以使用base64String作为音频的src播放音频
//   //           // }).catch(error => {
//   //           //   console.error('Blob转换ArrayBuffer失败', error);
//   //           // });
//   //           // const base64Data = uni.arrayBufferToBase64(new Uint8Array(res.data))
//   //           // const music = uni.createInnerAudioContext();
//   //           // music.src = URL.createObjectURL(res.data);
//   //           // music.src = 'data:audio/wav;base64,' + Buffer.from(res.data).toString('base64');
//   //           // music.play();
//   //         }
//   //       } else {
//   //         console.log("语音合成接口调用失败!");
//   //       }
//   //     },
//   //     fail: function (err) {
//   //       console.error('请求失败', err);
//   //     },
//   //   });
//   // } catch (error) {
//   //   console.error('请求失败', error);
//   // }
// }
// const blobToArrayBuffer = (blob) => {
//   return new Promise((resolve, reject) => {
//     let reader = new FileReader();
//     reader.readAsArrayBuffer(blob);
//     reader.onload = () => {
//       resolve(reader.result);
//     };
//     reader.onerror = (error) => {
//       reject(error);
//     };
//   });
// };
